A computing system may be connected to one or more peripheral devices, such as data storage devices, printers, and scanners. In a computing environment, an interface mechanism connects a computing system with the peripheral devices. The interface mechanism typically includes a data communication bus to which the devices and the computing system attach. The communication bus allows the computing system and the peripheral devices to communicate in an orderly manner. One or more communication buses may be utilized in a system.
Typically, a logic chip, known as a bus controller, monitors and manages data transmission between the computing system and the peripheral devices by prioritizing the order and the manner in which said devices take over and access the communication buses. In various interface mechanisms, control rules, also known as communication protocols, are implemented to promote the communication of information between computing systems and peripheral devices. For example, Small Computer System Interface or SCSI (pronounced xe2x80x9cscuzzyxe2x80x9d) is an interface mechanism that allows for the connection of multiple (e.g., up to 15) peripheral devices to a computing system. SCSI is widely used in computing systems, such as desktop and mainframe computers.
The advantage of SCSI in a desktop computer is that peripheral devices, such as scanners, CDs, DVDs, and Zip drives, as well as hard drives can be added to one SCSI cable chain. The distinct advantage of SCSI is its use in network servers where several hard drives can be easily configured as fault-tolerant clusters. That is, in the event one drive fails, it can be removed from the SCSI bus, and a new one inserted without loss of data even while the system continues to transfer data. A fault-tolerant communication system is generally designed to detect faults, such as power interruption or removal or insertion of peripherals, so that it can reset the appropriate system components to retransmit any lost data.
SCSI peripherals can be also daisy chained together. In a daisy chain environment an intermediate device has two ports. The first port connects to a computing system or another intermediate device attached to a computing system. The first port allows the device to communicate with the computing system. The second port is either terminated (i.e., not attached to anything) or attached to another device and allows for the computing system and the other device to communicate through the intermediate device. Thus, one or more devices can be attached in a line using a SCSI communication bus.
A SCSI communication bus uses the SCSI protocol for data communications. Hardware implementation of a SCSI communication bus is generally done using a 50 conductor flat ribbon or round bundle cable of characteristic impedance of 100 Ohm. Currently, a SCSI communication bus includes a bus controller included on a single expansion board that plugs into the host computing system. The expansion board is referred to as xe2x80x9cBus Controller Card (BCC),xe2x80x9d as a xe2x80x9cSCSI host adapter,xe2x80x9d or xe2x80x9cSCSI controller card.xe2x80x9d
In some embodiments, single SCSI host adapters are also available with two controllers that can support up to 30 peripherals. The SCSI host adapters can connect to an enclosure housing multiple devices. In the mid-range to high-end markets, the enclosure may have multiple controller xe2x80x9cinterface cardsxe2x80x9d or xe2x80x9ccontroller cardsxe2x80x9d providing connection paths from the host adapter to SCSI buses resident in the enclosure. These controller cards can also provide bus isolation, configuration, addressing, bus reset, and fault detection functionalities for the enclosure. The controller card provides a connection path from the host adapter to the SCSI buses resident in the enclosure. The controller cards usually provide configuration, addressing, bus reset, and fault detection functionality for the enclosure.
One or more controller cards may be plugged in or unplugged from the backplane while data communication is in process. The insertion and removal of peripheral devices or controller cards to the backplane while the computing system is operating is referred to as xe2x80x9chot plugging.xe2x80x9d
Single-ended and high voltage differential (HVD) SCSI interfaces have known strengths and weaknesses. Whereas single ended SCSI devices are less expensive to make, differential SCSI devices can communicate over longer cables and are less susceptible to external noise influences. HVD SCSI has a higher cost associated with it. The 64 milliamp drivers required for differential (HVD) systems draw too much current to be able to drive the bus with a single chip. Single ended SCSI required only 48 milliamp drivers and can be implemented within a single chip. The high cost and low availability of differential SCSI devices also create a need for devices that convert single ended SCSI to differential SCSI such that both device types could coexist on the same bus. Differential SCSI along with its single ended alternative have reached the limits of what would be physically reliable in transfer rates, even though the flexibility of the SCSI protocol allowed for implementing much faster communications. Another problem has been the incompatibility between single ended and differential devices in the same system.
As the amount of data used and stored in systems is ever-increasing, there is a corresponding need to communicate greater quantities of data at ever-increasing speed.
An apparatus capable of determining whether connections are properly mated includes a control device that monitors the state of input lines associated with connectors. The input lines are held at a predetermined state until a device is connected to or disconnected from one or more of the connectors. The control device detects the change in state on the input line and determines whether a connection or disconnection is occurring. When a connection is occurring, the state of an output signal is set to provide connection feedback to the device being connected via another signal line coupled to the connector. The capability to monitor connections and disconnection of multiple devices allows a system to determine whether devices are properly connected to provide the required functionality, such as properly terminating a communication port, and enabling communication with other devices.
An apparatus, system, and method for monitoring connections to a device, such as a bus controller card capable of communicating high speed data between host computers and peripheral devices, are provided. In one embodiment, an apparatus for detecting connection status of multiple devices includes a plurality of connectors. Each connector includes at least two pins coupled to first input signal lines. One end of a corresponding first output signal line is coupled to each of the first input signal lines. Another end of the first input signal lines and the first output signal lines are coupled to a control device.
In one aspect, the control device monitors at least two of the input signal lines to detect when at least one of the devices is attached or removed. The control device sets a corresponding connection status parameter based on whether the device was connected or disconnected. The value of the corresponding output signal is set to a predetermined value when the connection status parameter indicates the device was disconnected.
In another aspect, a second input signal line is coupled to a second pin on the corresponding connector and one end of a corresponding second output signal line is coupled to the second input signal line. The control device is coupled to another end of the second input and the second output signal lines.
In still another aspect, the control device detects a change in the signals on the first and second input signal lines, and sets a corresponding connection status parameter based on whether the device was connected or disconnected.
In another embodiment, a communication system includes a plurality of communication ports. A monitor circuit coupled to the communication ports to determine whether a device is properly connected to each of the ports.
In one aspect, each port comprises a plurality of interfaces to input signal lines, and the monitor circuit sets a signal on at least two of the input signal lines and to detect a change in the signal on at least one of the two input signal lines due to the device being connected or disconnected.
In another aspect, one end of each at least two output signal lines is coupled to a corresponding one of the at least two input signal lines. Another end of the at least two output signal lines is coupled to the monitor circuit. The monitor circuit sets a signal on at least one of the output signal lines when the monitor circuit detects a change in the signal on at least one of the input signal lines due to the device being connected or disconnected.
In yet another aspect, a portion of the monitor circuit is implemented with one or more state machines that determine whether a device is currently connected, and set the signals on the output signal lines based on the signals on the input signal lines and whether a device is currently connected.
In another embodiment, a method for monitoring a connection to a device includes pulling an input signal on the input line high via a control circuit and monitoring the input signal to detect when the input signal is pulled low by a connection being made to the device. A connection status parameter is set to indicate the connection. The input signal is monitored to detect when the connection is being removed from the device. Upon disconnection, the connection status parameter is set to indicate the disconnection, and the input signal is set to a predetermined value when the connection status parameter indicates the disconnection.
Various other features and advantages of embodiments of the invention will be more fully understood upon consideration of the detailed description below, taken together with the accompanying figures.